#pragma once
#include "../Render/Render.hpp"
#include "../Core/Base.hpp"
#include "../Core/TimeStep.hpp"
#include "../Core/Layer.hpp"


namespace Kriko
{
	class GameController;
}

namespace Kriko_View
{
	class GameView;
}

class ExampleLayer : public Kriko::Layer
{
public:
	ExampleLayer();
	~ExampleLayer() = default;
	virtual void OnAttach() override;
	virtual void OnDetach() override;
	virtual void OnUpdate(const Kriko::TimeStep& p_deltaTime) override;
	virtual void OnImGuiRender() override;
	virtual void OnEvent(IEventDataPtr pEvent) override;

private:
	class Kriko::RenderObject* object;
	glm::vec2 lastMousePosition;
	bool bFirstMouse;
	class Kriko_View::GameView* gameView;
	class Kriko::GameController* gameController;
};
